package com.xbts.system.domain;


import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import javax.validation.constraints.NotEmpty;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import lombok.Data;
import com.xbts.common.annotation.Excel;
import com.xbts.common.utils.StringUtils;
import com.xbts.common.core.domain.BaseEntity;

/**
 * 【华为云账号绑定信息】对象 cn_huawei_account_bind_info
 *
 * @author xbts
 * @date 2023-12-06
 */
@Data
@ApiModel("华为云账号绑定信息对象")
@TableName("cn_huawei_account_bind_info")
public class CnHuaweiAccountBindInfo extends BaseEntity {

    private static final long serialVersionUID=1L;

    /** id */
    @TableId
    private String id;

    /** 中酒云用户ID */
    @Excel(name = "中酒云用户ID")
    @ApiModelProperty("中酒云用户ID")
    private String xaccountId;

    /** 客户的华为云账号名。

如果为空，随机生成。 */
    @Excel(name = "客户的华为云账号名。 如果为空，随机生成。")
    @ApiModelProperty("客户的华为云账号名。如果为空，随机生成。")
    private String domainName;

    /** 手机号。 */
    @Excel(name = "手机号。")
    @ApiModelProperty("手机号。")
    private String mobilePhone;

    /** 密码 */
    @Excel(name = "密码")
    @ApiModelProperty("密码")
    private String password;

    /** 状态（0绑定中，1已绑定，2已解绑） */
    @Excel(name = "状态", readConverterExp = "0=绑定中，1已绑定，2已解绑")
    @ApiModelProperty("状态")
    private String status;

    /** 是否关闭营销消息的发送true：关闭，false：不关闭（默认） */
    @ApiModelProperty("是否关闭营销消息的发送true：关闭，false：不关闭")
    private String isCloseMarketMs;

    /** 云经销商ID */
    @Excel(name = "云经销商ID")
    @ApiModelProperty("云经销商ID")
    private String indirectPartnerId;

    /** 华为云客户ID */
    @Excel(name = "华为云客户ID")
    @ApiModelProperty("华为云客户ID")
    private String domainId;

    public<T> QueryWrapper<T> queryWrapper(){
        QueryWrapper<T> queryWrapper=new QueryWrapper<>();
        queryWrapper.like(StringUtils.isNotEmpty(xaccountId),"xaccount_id",xaccountId);
        queryWrapper.like(StringUtils.isNotEmpty(domainName),"domain_name",domainName);
        queryWrapper.like(StringUtils.isNotEmpty(mobilePhone),"mobile_phone",mobilePhone);
        queryWrapper.like(StringUtils.isNotEmpty(password),"password",password);
        queryWrapper.like(StringUtils.isNotEmpty(status),"status",status);
        queryWrapper.like(StringUtils.isNotEmpty(isCloseMarketMs),"is_close_market_ms",isCloseMarketMs);
        queryWrapper.like(StringUtils.isNotEmpty(indirectPartnerId),"indirect_partner_id",indirectPartnerId);
        queryWrapper.like(StringUtils.isNotEmpty(domainId),"domain_id",domainId);
        return queryWrapper;
    }
}